package com.hk.commons.dict;

import com.hk.commons.util.TextValueItem;

import java.util.List;
import java.util.function.Predicate;

/**
 * 字典Service
 *
 * @author kevin
 * @date 2018-08-31 14:10
 */
public interface DictService {

    /**
     * 根据dict Code Id查询所有的value
     */
    List<Byte> getDictValueListByCodeId(Long codeId);

    /**
     * 查询字典下所有的选项
     *
     * @param codeId 字典编码
     */
    default List<TextValueItem> getDictCodeId(Long codeId) {
        return getDictCodeId(codeId, null);
    }

    /**
     * 查询字典下选项，根据 filter过滤
     *
     * @param codeId 字典编码
     * @param filter filter
     */
    List<TextValueItem> getDictCodeId(Long codeId, Predicate<TextValueItem> filter);

    /**
     * 根据字典 value 获取对应的名称
     */
    String getCodeName(Long baseCodeId, Number value);
}
